// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "Abilities/GameplayAbility.h"
#include "InteractionQuery.generated.h"

/**
 * 交互查询结构体，包含交互请求的相关信息
 */
USTRUCT(BlueprintType)
struct FInteractionQuery
{
	GENERATED_BODY()

public:
	/** 请求交互的Pawn */
	UPROPERTY(BlueprintReadWrite)
	TWeakObjectPtr<AActor> RequestingAvatar; // 请求交互的角色

	/** 允许我们指定一个控制器 - 不需要与请求角色的所有者匹配 */
	UPROPERTY(BlueprintReadWrite)
	TWeakObjectPtr<AController> RequestingController; // 请求交互的控制器

	/** 一个通用的UObject，用于存放交互所需的额外数据 */
	UPROPERTY(BlueprintReadWrite)
	TWeakObjectPtr<UObject> OptionalObjectData; // 可选的额外数据对象
};